package com.zjsd.sqeybusiness.mapper;

import java.util.Date;
import java.util.List;

import com.ruoyi.system.domain.SysPost;
import com.zjsd.sqeybusiness.domain.Achievements;
import com.zjsd.sqeybusiness.domain.Busitask;
import com.zjsd.sqeybusiness.dto.*;
import org.springframework.stereotype.Repository;

/**
 * 业务员目标任务Mapper接口
 *
 * @author Zheng
 * @date 2021-07-14
 */
@Repository
public interface BusitaskMapper
{
    /**
     * 查询业务员目标任务
     *
     * @param taskid 业务员目标任务ID
     * @return 业务员目标任务
     */
    public Busitask selectBusitaskById(Long taskid);

    /**
     * 查询业务员目标任务列表
     *
     * @param busitask 业务员目标任务
     * @return 业务员目标任务集合
     */
    public List<Busitask> selectBusitaskList(Busitask busitask);

    /**
     * 新增业务员目标任务
     *
     * @param busitask 业务员目标任务
     * @return 结果
     */
    public int insertBusitask(Busitask busitask);

    /**
     * 修改业务员目标任务
     *
     * @param busitask 业务员目标任务
     * @return 结果
     */
    public int updateBusitask(Busitask busitask);

    /**
     * 删除业务员目标任务
     *
     * @param taskid 业务员目标任务ID
     * @return 结果
     */
    public int deleteBusitaskById(Long taskid);

    /**
     * 批量删除业务员目标任务
     *
     * @param taskids 需要删除的数据ID
     * @return 结果
     */
    public int deleteBusitaskByIds(Long[] taskids);

    UserInfoDTO queryUserDeptinfo(UserInfoDTO userInfoDTO);

    List<SysPost> queryUserPostInfo(UserInfoDTO userInfoDTO);

    TaskDTO queryUserTask(TaskDTO taskDTO);

    List<Busitask> queryUserBusiTask(TaskDTO taskDTO);

    JryjDTO queryBusiTaskTotal(JryjDTO jryjDTO);

    List<DeptArchDTO> queryDeptArchTotal(JryjDTO jryjDTO);

    JryjDTO queryToadyNo1(JryjDTO jryjDTO);

    List<AchDetailDTO> queryAchDetail(YwyAchDTO ywyAchDTO);

    List<AchDetailDTO> queryRphValue(YwyAchDTO ywyAchDTO);

    Achievements queryUserWeekTask(ParamDTO paramDTO );

    MonthStaticsDTO queryMonthStatics(ParamDTO paramDTO);

    MonthStaticsDTO queryDeptBusiTask(ParamDTO paramDTO);

    TaskStaticsDTO queryNextMonthBusiTask(TaskStaticsDTO taskStaticsDTO);

    TaskStaticsDTO queryNextMonthDeptTask(TaskStaticsDTO taskStaticsDTO);


    TaskStaticsDTO queryXiaoshouRs(TaskStaticsDTO taskStaticsDTO);

    TaskStaticsDTO queryYtbRs(TaskStaticsDTO taskStaticsDTO);

    List<DeptArchDTO> queryDeptUsers(TaskStaticsDTO taskStaticsDTO);

    TaskStaticsDTO queryDeptYtbRs(ParamDTO paramDTO);

    List<DeptArchDTO> queryDeptArchDetail(JryjDTO jryjDTO);

    List<MonthStaticsDTO> queryDeptTaskDetail(MonthStaticsDTO monthStaticsDTO);

    MonthStaticsDTO selectDeptTask(MonthStaticsDTO monthStaticsDTO);

    List<MonthStaticsDTO> queryPsnlTaskDetail(MonthStaticsDTO monthStaticsDTO);

    List<MonthStaticsDTO> queryPsnlTaskDetailYb(MonthStaticsDTO monthStaticsDTO);

    List<AchDetailDTO> queryYearValue(YwyAchDTO ywyAchDTO);
}
